﻿#!/bin/bash
#author:Castle Moriarty
# date:2025-10-19

### 检查/data/wwwroot/app目录下所有文件和目录，看是否满足下面条件：
### 所有文件权限为644
### 所有目录权限为755
### 文件和目录所有者为www，所属组为root
### 如果不满足，改成符合要求
### 注意，不要直接改权限，一定要有判断的过程

cd /data/wwwroot/app
## 遍历所有目录和文件，用 "find ." 即可
for f in `find .`
do
  ##查看文件权限
  f_p=`stat -c %a $f`
  ##查看文件所有者
  f_u=`stat -c %U $f`
  ##查看文件所属组
  f_g=`stat -c %G $f`

  ##判断是否为目录
  if [ -d $f ]
  then
    [ $f_p != '755' ] && chmod 755 $f
  else
    [ $f_p != '644' ] && chmod 644 $f
  fi

  ## && 用在两条命令中间，可以起到if判断的作用
  ## 大过年第一条命令成功，才会执行后面的命令
  [ $f_u != 'www' ] && chmod www $f
  [ $f_p != 'root' ] && chmod :root $f
done

### 关键知识点总结
### 查看文件权限： stat -c %a 1.txt
### 查看文件所属组：stat -c %G 1.txt
### 查看文件所有者：stat -c %U 1.txt
### && 可以实现：当前命令执行成功再执行后面命令
### || 可以实现：当前面命令不成功再执行后面命令
